HAL SPDIFRX control functions migration

This section provides information about the HAL SPDIFRX control function migration.

Sets SPDIFRX data format

HAL1

HAL2

In HAL1, the HAL_SPDIFRX_SetDataFormat() function configures the SPDIFRX data format, stereo mode, and mask options in a single call using a SPDIFRX_SetDataFormatTypeDef structure.

In HAL2, this function has been removed. The equivalent configuration is split between:

  • HAL_SPDIFRX_SetConfig() for the data format.

  • HAL_SPDIFRX_SetMasks() for preamble, channel-user, validity and parity-error masks.

  • HAL_SPDIFRX_EnableAlignmentForStereoOverrun() and HAL_SPDIFRX_DisableAlignmentForStereoOverrun() for stereo-related behavior.

HAL_StatusTypeDef HAL_SPDIFRX_SetDataFormat(SPDIFRX_HandleTypeDef *hspdif,
                                            SPDIFRX_SetDataFormatTypeDef  sDataFormat);
/* Data format is configured via HAL_SPDIFRX_SetConfig() */
hal_spdifrx_config_t spdifrx_config;
spdifrx_config.data_format     = HAL_SPDIFRX_DATA_FORMAT_LSB;
HAL_SPDIFRX_SetConfig(&hSPDIFRX1, &spdifrx_config);

/* Masks are configured via HAL_SPDIFRX_SetMasks() */
hal_spdifrx_masks_t masks;
masks.preamble_mask     = HAL_SPDIFRX_PREAMBLE_MASK_DISABLE;
masks.channel_user_mask = HAL_SPDIFRX_CHANNEL_USER_MASK_DISABLE;
masks.validity_mask     = HAL_SPDIFRX_VALIDITY_MASK_DISABLE;
masks.parity_error_mask = HAL_SPDIFRX_PARITY_ERROR_MASK_DISABLE;
HAL_SPDIFRX_SetMasks(&hSPDIFRX1, &masks);

HAL_SPDIFRX_EnableAlignmentForStereoOverrun(&hSPDIFRX1);
sDataFormat.DataFormat = SPDIFRX_DATAFORMAT_LSB

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
spdifrx_config.data_format = HAL_SPDIFRX_DATA_FORMAT_LSB

HAL_SPDIFRX_SetConfig(&hSPDIFRX1, &spdifrx_config);
sDataFormat.DataFormat = SPDIFRX_DATAFORMAT_MSB

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
spdifrx_config.data_format = HAL_SPDIFRX_DATA_FORMAT_MSB

HAL_SPDIFRX_SetConfig(&hSPDIFRX1, &spdifrx_config);
sDataFormat.DataFormat = SPDIFRX_DATAFORMAT_32BITS

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
spdifrx_config.data_format = HAL_SPDIFRX_DATA_FORMAT_32BITS

HAL_SPDIFRX_SetConfig(&hSPDIFRX1, &spdifrx_config);
sDataFormat.StereoMode = SPDIFRX_STEREOMODE_ENABLE

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
HAL_SPDIFRX_EnableAlignmentForStereoOverrun(&hSPDIFRX1);
sDataFormat.StereoMode = SPDIFRX_STEREOMODE_DISABLE

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
HAL_SPDIFRX_DisableAlignmentForStereoOverrun(&hSPDIFRX1);
sDataFormat.PreambleTypeMask = SPDIFRX_PREAMBLETYPEMASK_OFF

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
masks.preamble_mask = HAL_SPDIFRX_PREAMBLE_MASK_DISABLE;

HAL_SPDIFRX_SetMasks(&hSPDIFRX1, &masks);
sDataFormat.PreambleTypeMask = SPDIFRX_PREAMBLETYPEMASK_ON

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
masks.preamble_mask = HAL_SPDIFRX_PREAMBLE_MASK_ENABLE;

HAL_SPDIFRX_SetMasks(&hSPDIFRX1, &masks);
sDataFormat.ChannelStatusMask = SPDIFRX_CHANNELSTATUS_OFF

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
masks.channel_user_mask = HAL_SPDIFRX_CHANNEL_USER_MASK_DISABLE;

HAL_SPDIFRX_SetMasks(&hSPDIFRX1, &masks);
sDataFormat.ChannelStatusMask = SPDIFRX_CHANNELSTATUS_ON

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
masks.channel_user_mask = HAL_SPDIFRX_CHANNEL_USER_MASK_ENABLE;

HAL_SPDIFRX_SetMasks(&hSPDIFRX1, &masks);
sDataFormat.ValidityBitMask = SPDIFRX_VALIDITYMASK_OFF

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
masks.validity_mask = HAL_SPDIFRX_VALIDITY_MASK_DISABLE;

HAL_SPDIFRX_SetMasks(&hSPDIFRX1, &masks);
sDataFormat.ValidityBitMask = SPDIFRX_VALIDITYMASK_ON

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
masks.validity_mask = HAL_SPDIFRX_VALIDITY_MASK_ENABLE;

HAL_SPDIFRX_SetMasks(&hSPDIFRX1, &masks);
sDataFormat.ParityErrorMask = SPDIFRX_PARITYERRORMASK_OFF

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
masks.parity_error_mask = HAL_SPDIFRX_PARITY_ERROR_MASK_DISABLE;

HAL_SPDIFRX_SetMasks(&hSPDIFRX1, &masks);
sDataFormat.ParityErrorMask = SPDIFRX_PARITYERRORMASK_ON

HAL_SPDIFRX_SetDataFormat(&hspdif, sDataFormat);
masks.parity_error_mask = HAL_SPDIFRX_PARITY_ERROR_MASK_ENABLE;

HAL_SPDIFRX_SetMasks(&hSPDIFRX1, &masks);